// aRemoteServer.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "aRemoteServer.h"
#include "aRemoteServerDlg.h"
#include "aComm.h"
#include "Global.h"
#include "Action.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CARemoteServerApp

BEGIN_MESSAGE_MAP(CARemoteServerApp, CWinApp)
	//{{AFX_MSG_MAP(CARemoteServerApp)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG
	ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CARemoteServerApp construction

CARemoteServerApp::CARemoteServerApp()
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CARemoteServerApp object

CARemoteServerApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CARemoteServerApp initialization

BOOL CARemoteServerApp::InitInstance()
{
	AfxEnableControlContainer();
	WSADATA wsaData;
	if(WSAStartup(0x202, &wsaData))
		return false;

	CXTPWinDwmWrapper().SetProcessDPIAware();
	// Standard initialization
	// If you are not using these features and wish to reduce the size
	//  of your final executable, you should remove from the following
	//  the specific initialization routines you do not need.

#if _MSC_VER <= 1200 // MFC 6.0 or earlier
	#ifdef _AFXDLL
		Enable3dControls();			// Call this when using MFC in a shared DLL
	#else
		Enable3dControlsStatic();	// Call this when linking to MFC statically
	#endif
#endif
	GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
	if (!CGlobal::CheckMutex())
		return FALSE;

	g_Global.InitGlobal();	
	g_Global.CreateWindows();

	// Since the dialog has been closed, return FALSE so that we exit the
	//  application, rather than start the application's message pump.
	return TRUE;
}

int CARemoteServerApp::ExitInstance() 
{
	// TODO: Add your specialized code here and/or call the base class
	g_Global.ExitGlobal();
	GdiplusShutdown(gdiplusToken);
	WSACleanup();
	return CWinApp::ExitInstance();
}